gtk4.git
6 years agotestsuite: Fix popover-related failures
Matthias Clasen [Sat, 18 May 2019 14:22:29 +0000 (14:22 +0000)]
testsuite: Fix popover-related failures

6 years agowindow: Make unrealize work again
Matthias Clasen [Sat, 18 May 2019 13:39:12 +0000 (13:39 +0000)]
window: Make unrealize work again

GtkWidgets unrealize accesses the frame clock
of the surface, so we need to keep the surface
in place until after we've chained up.

6 years agoDrop gtk_widget_set_surface
Matthias Clasen [Fri, 17 May 2019 21:34:20 +0000 (21:34 +0000)]
Drop gtk_widget_set_surface

Not used anymore. Only GtkNative's have surfaces.

6 years agoDrop GtkWidget::surface
Matthias Clasen [Fri, 17 May 2019 21:32:16 +0000 (21:32 +0000)]
Drop GtkWidget::surface

Unneeded.

6 years agoWork toward dropping widget->surface
Matthias Clasen [Fri, 17 May 2019 21:25:36 +0000 (21:25 +0000)]
Work toward dropping widget->surface

Drop special-casing of GtkNative in
most widget vfuncs. GtkNative implementations
need to override these anyway.

6 years agoRemove gtk_widget_get/set_has_surface
Matthias Clasen [Fri, 17 May 2019 21:08:38 +0000 (21:08 +0000)]
Remove gtk_widget_get/set_has_surface

These serve no purpose anymore - widgets don't
have surfaces, unless they're a GtkNative.

6 years agoAdd a GdkSurface::parent property
Matthias Clasen [Wed, 8 May 2019 04:36:59 +0000 (04:36 +0000)]
Add a GdkSurface::parent property

6 years agopopover: Bring back the beak
Matthias Clasen [Sun, 5 May 2019 23:53:02 +0000 (23:53 +0000)]
popover: Bring back the beak

Bring back the code that draws an arrow.

6 years agox11: Fix handling of frame clock freezes
Matthias Clasen [Sun, 19 May 2019 02:53:17 +0000 (02:53 +0000)]
x11: Fix handling of frame clock freezes

Now that popups share the frame clock of their
parent, we have to be much more careful about
freezing the clock, since that may stop updates
for another surface.

This commit makes two changes that make the
X11 handling of the frame clock more similar
to the Wayland backend:
- Use gdk_surface_freeze_updates instead of
  gdk_surface_freeze_toplevel_updates to avoid
  affecting the frame clock
- Bail out early in before_paint/after_paint
  if the surface is frozen, to avoid affecting
  the frame clock

Together, these two make the X11 popup surface
type work without freezing updates for the toplevel.

6 years agogdk: Inherit the frame clock for popups
Matthias Clasen [Sun, 5 May 2019 22:59:51 +0000 (22:59 +0000)]
gdk: Inherit the frame clock for popups

With separate clocks, the phases are not coordinated,
which messes with GTKs size allocation machinery treating
the entire widget tree as a whole, and causes us to
run into assertion where popups get drawn before they
are allocated.

6 years agoAdd a testcase for size allocation
Matthias Clasen [Sun, 5 May 2019 22:10:16 +0000 (22:10 +0000)]
Add a testcase for size allocation

This triggers a critical warning in gtk_widget_snapshot.

6 years agowidget: Remove a popover special case
Matthias Clasen [Sat, 4 May 2019 19:06:40 +0000 (19:06 +0000)]
widget: Remove a popover special case

We never run this since GtkPopover has its
own size_allocate, anyway.

6 years agotext view: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:45:14 +0000 (18:45 +0000)]
text view: Allocate popovers

6 years agoplaces sidebar: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:44:51 +0000 (18:44 +0000)]
places sidebar: Allocate popovers

6 years agocolor swatch: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:43:04 +0000 (18:43 +0000)]
color swatch: Allocate popovers

6 years agoentry: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:10:12 +0000 (18:10 +0000)]
entry: Allocate popovers

6 years agoscale button: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 17:14:06 +0000 (17:14 +0000)]
scale button: Allocate popovers

Call gtk_native_check_resize() from size_allocate,
as is required now. This gets volume buttons closer
to working again (dragging the slider still doesn't
work).

6 years agotext: Allocate popovers
Matthias Clasen [Sat, 4 May 2019 18:01:29 +0000 (18:01 +0000)]
text: Allocate popovers

We need to do the same thing the menu button
does, and call gtk_native_check_resize for
all our popovers

6 years agowindow: Don't inherit cursors across surfaces
Matthias Clasen [Sat, 4 May 2019 16:21:33 +0000 (16:21 +0000)]
window: Don't inherit cursors across surfaces

I can't think of a case where this is the desired
behavior. So, instead of setting an explicit cursor
on all popups, just stop walking the parents at
surface boundaries.

6 years agowidget: Optimize resize propagation
Matthias Clasen [Sat, 4 May 2019 18:12:45 +0000 (18:12 +0000)]
widget: Optimize resize propagation

When a GtkNative widget is marked as resize_needed,
we need a current position for its parent and we need
the parent to be allocated (so we can position our
surface), but we don't need the parent to be marked
as resize_needed, since the parent size is entirely
independent of the popup size.

6 years agowidget: Improve warning messages
Matthias Clasen [Sat, 4 May 2019 18:15:03 +0000 (18:15 +0000)]
widget: Improve warning messages

When we print warnings about a widget, using
gtk_widget_get_name() is slightly better than
G_OBJECT_TYPE_NAME(), since it will give us
the widgets unique name when available.

6 years agoAdd gdk_surface_get_parent back
Matthias Clasen [Thu, 2 May 2019 21:43:38 +0000 (17:43 -0400)]
Add gdk_surface_get_parent back

The api is the same, the parent is different.
This now returns the parent of popup surfaces.

6 years agosurface: Remove gdk_surface_set/merge_child_input_shapes()
Alexander Larsson [Tue, 23 Apr 2019 14:29:48 +0000 (16:29 +0200)]
surface: Remove gdk_surface_set/merge_child_input_shapes()

These are useless now that we don't have child surfaces

6 years agosurface: Remove old debug code
Alexander Larsson [Tue, 23 Apr 2019 14:29:33 +0000 (16:29 +0200)]
surface: Remove old debug code

6 years agopopover: Use GdkSurface::autohide
Matthias Clasen [Mon, 22 Apr 2019 21:33:26 +0000 (21:33 +0000)]
popover: Use GdkSurface::autohide

The new api is made for this case.

6 years agosurface: Add an autohide property
Matthias Clasen [Mon, 22 Apr 2019 21:31:33 +0000 (21:31 +0000)]
surface: Add an autohide property

This api is meant to mimic xdg-popover.grab - we
show the surface, and dismiss it when we get events
on other surfaces. For foreign surfaces, the compositor
handles that for us; for our own, we check outselves
before delivering events to GTK.

6 years agobroadway: Track popups
Matthias Clasen [Mon, 22 Apr 2019 20:27:08 +0000 (20:27 +0000)]
broadway: Track popups

This is more or less a 1:1 copy of the X11 code.

6 years agox11: Implement popup surfaces
Matthias Clasen [Mon, 22 Apr 2019 15:22:33 +0000 (15:22 +0000)]
x11: Implement popup surfaces

Make them use o-r windows, and move
with their parent.

We do a sort-of ok job on stacking order
here - whenever the parent window gets a
ConfigureNotify, we just restack all popups
directly on top of their parent. This is good
enough to keep popups on top of their parent
while we drag it around, and it gets the popup
to disappear when raising another window on
top of the parent.

6 years agowayland: Use popup parents
Matthias Clasen [Mon, 22 Apr 2019 15:21:45 +0000 (15:21 +0000)]
wayland: Use popup parents

Make the Wayland move-to-rect implementation
use popup parents.

6 years agosurface: Stop setting transient-for for popups
Matthias Clasen [Mon, 22 Apr 2019 15:20:47 +0000 (15:20 +0000)]
surface: Stop setting transient-for for popups

This was just a hack to reuse the existing
infrastructure. Now that we store parents separately,
stop doing it.

6 years agosurface: Make move-to-rect work for popups
Matthias Clasen [Mon, 22 Apr 2019 15:17:53 +0000 (15:17 +0000)]
surface: Make move-to-rect work for popups

Now that we store popup parents separately,
the client-side move-to-rect implementation
must use them.

6 years agosurface: Store popup parent
Matthias Clasen [Mon, 22 Apr 2019 14:21:17 +0000 (14:21 +0000)]
surface: Store popup parent

Store popup parents separately from transient-for
parents, since these are separate concepts with
different behaviors. And we need the parent in
the frontend, so we can use it in the fallback
move-to-rect implementation.

6 years agogdk: Introduce a popup surface type
Matthias Clasen [Mon, 22 Apr 2019 13:16:26 +0000 (13:16 +0000)]
gdk: Introduce a popup surface type

This surface type is meant to have semantics
similar to xdg-popup, with a mandatory parent,
and relative placement using gdk_surface_move_to_rect.

6 years agox11: Remove useless checks
Matthias Clasen [Mon, 22 Apr 2019 13:16:55 +0000 (13:16 +0000)]
x11: Remove useless checks

All surfaces are toplevels now, no need
to check for this all over the place.

6 years agoGet rid of GdkSurfaceImpl
Matthias Clasen [Mon, 22 Apr 2019 01:14:46 +0000 (01:14 +0000)]
Get rid of GdkSurfaceImpl

We don't need the complicated wrapper system anymore,
since client-side windows are gone. This commit moves
all the vfuncs to GtkSurfaceClass, and changes the
backends to just derive their surface implementation
from GdkSurface.

6 years agogdk: Add a private header
Matthias Clasen [Sun, 21 Apr 2019 18:42:31 +0000 (14:42 -0400)]
gdk: Add a private header

This is in preparation for getting rid of GdkSurfaceImpl.

6 years agoRename surface constructors
Matthias Clasen [Sun, 21 Apr 2019 16:51:10 +0000 (16:51 +0000)]
Rename surface constructors

We want to use a gdk_surface_new_popup for popups,
and align the constructor names with the surface
types, so rename

gdk_surface_new_popup -> gdk_surface_new_temp
gdk_surface_new_popup_full -> gdk_surface_new_popup

The temp surface type will disappear eventually.

6 years agosurface: Cosmetics
Matthias Clasen [Sat, 20 Apr 2019 15:24:42 +0000 (15:24 +0000)]
surface: Cosmetics

6 years agogdk: Drop pass-through surfaces
Matthias Clasen [Sun, 21 Apr 2019 16:33:22 +0000 (16:33 +0000)]
gdk: Drop pass-through surfaces

With client-side windows gone, this property
is no longer used at all, and has been replaced
by a similar concept on the widget level.
Drop it.

6 years agogdk: Drop GdkWindowAttr
Matthias Clasen [Sun, 21 Apr 2019 16:24:07 +0000 (12:24 -0400)]
gdk: Drop GdkWindowAttr

All the information in it is already contained
in the surface object we pass along, and none
of the backend implementations were using the
attributes at all.

6 years agogdk: Drop input-only surfaces
Matthias Clasen [Sun, 21 Apr 2019 16:06:11 +0000 (12:06 -0400)]
gdk: Drop input-only surfaces

We are not creating such surfaces anymore, and
they were only ever meaningfully implemented
on X11. Drop the concept, and the api for determining
if a surface is input-only.

6 years agogdk: Remove an unused field
Matthias Clasen [Sun, 21 Apr 2019 15:39:35 +0000 (15:39 +0000)]
gdk: Remove an unused field

Spring cleaning. We are not using this field
at all, since we have the input_only boolean.

6 years agoDrop gdk_surface_new_temp
Matthias Clasen [Sat, 20 Apr 2019 04:30:33 +0000 (04:30 +0000)]
Drop gdk_surface_new_temp

This is no longer used, and the only difference
to gdk_surface_new_popup is input-only, which is
an X11-only concept.

6 years agomenu: Stop using gdk_surface_new_temp
Matthias Clasen [Sat, 20 Apr 2019 04:32:00 +0000 (04:32 +0000)]
menu: Stop using gdk_surface_new_temp

We can just as well use gdk_surface_new_popup.

6 years agox11: Stop using gdk_surface_new_temp
Matthias Clasen [Sat, 20 Apr 2019 04:31:27 +0000 (04:31 +0000)]
x11: Stop using gdk_surface_new_temp

We can just as well use gdk_surface_new_popup.

6 years agobroadway: Stop using gdk_surface_new_temp
Matthias Clasen [Sat, 20 Apr 2019 01:29:25 +0000 (01:29 +0000)]
broadway: Stop using gdk_surface_new_temp

This is in preparation for adding a proper
popup surface type.

6 years agowayland: Remove a useless switch
Matthias Clasen [Mon, 29 Apr 2019 16:49:38 +0000 (16:49 +0000)]
wayland: Remove a useless switch

We are setting the title unconditionally, now

6 years agodocs: Remove references to gdk_device_grab
Matthias Clasen [Fri, 19 Apr 2019 23:15:26 +0000 (19:15 -0400)]
docs: Remove references to gdk_device_grab

It is no longer public api, refer to gdk_seat_grab instead.

6 years agogdk: Remove remnants of client-side windows
Matthias Clasen [Fri, 19 Apr 2019 23:08:24 +0000 (23:08 +0000)]
gdk: Remove remnants of client-side windows

Now that all surfaces are native, we don't need
to separately keep track of grab surfaces and
their native ancestor anymore.

6 years agoDrop gtk_widget_register_surface
Matthias Clasen [Fri, 19 Apr 2019 20:18:57 +0000 (16:18 -0400)]
Drop gtk_widget_register_surface

This is no longer used.

6 years agopopover: Stop using gtk_widget_register_surface
Matthias Clasen [Fri, 19 Apr 2019 20:14:44 +0000 (20:14 +0000)]
popover: Stop using gtk_widget_register_surface

The GtkRoot implementations are expected to handle
the necessary surface setup themselves, going forward.

6 years agowindow: Stop using gtk_widget_register_surface
Matthias Clasen [Fri, 19 Apr 2019 20:14:09 +0000 (20:14 +0000)]
window: Stop using gtk_widget_register_surface

The GtkRoot implementations are expected to handle
the necessary surface setup themselves, going forward.

6 years agomenu: Stop using gtk_widget_register_surface
Matthias Clasen [Fri, 19 Apr 2019 20:13:49 +0000 (20:13 +0000)]
menu: Stop using gtk_widget_register_surface

It does not seem to be necessary at all.

6 years agosurface: Make gdk_surface_get_device_position void
Matthias Clasen [Fri, 19 Apr 2019 19:39:23 +0000 (15:39 -0400)]
surface: Make gdk_surface_get_device_position void

None of the callers were using the return value,
and without child surfaces, it is not very useful.

6 years agox11: Drop a gratitious use of gdk_event_get_root_coords
Matthias Clasen [Mon, 25 Mar 2019 04:26:42 +0000 (00:26 -0400)]
x11: Drop a gratitious use of gdk_event_get_root_coords

We are in the backend, so we can do the translation ourselves.

6 years agoRemove gdk_surface_get_geometry as public api
Matthias Clasen [Mon, 25 Mar 2019 04:00:14 +0000 (00:00 -0400)]
Remove gdk_surface_get_geometry as public api

We still need to keep the vfunc around, since the
fallback implementation of gdk_display_get_monitor_at_surface
uses it. So, a GDK backend must either have root coordinates
or always return a monitor from monitor_at_surface.

6 years agoDrop gdk_surface_get_root_origin
Matthias Clasen [Mon, 25 Mar 2019 03:15:01 +0000 (23:15 -0400)]
Drop gdk_surface_get_root_origin

It was not used.

6 years agoRemove gdk_surface_get_root_coords as public api
Matthias Clasen [Mon, 25 Mar 2019 03:09:48 +0000 (23:09 -0400)]
Remove gdk_surface_get_root_coords as public api

We still need to keep the vfunc around, since the
fallback implementation for move_to_rect uses it.
So, a GDK backend must either have root coordinates
or implement move_to_rect.

6 years agoRemove gdk_surface_coords_to/from_parent
Matthias Clasen [Mon, 25 Mar 2019 01:04:34 +0000 (21:04 -0400)]
Remove gdk_surface_coords_to/from_parent

This api was unused, and surfaces have no parents anymore.

6 years agosurface: Small simplification
Matthias Clasen [Sun, 24 Mar 2019 20:30:32 +0000 (16:30 -0400)]
surface: Small simplification

No more special-casing of state setting.

6 years agosurface: Simplify destroy implementation
Matthias Clasen [Sun, 24 Mar 2019 20:24:30 +0000 (16:24 -0400)]
surface: Simplify destroy implementation

Without child surfaces, there is no need to recurse.

6 years agosurface: Remove abs_x/abs_y
Matthias Clasen [Sun, 24 Mar 2019 19:42:32 +0000 (15:42 -0400)]
surface: Remove abs_x/abs_y

We no longer have child windows, so the offset is
always 0.

6 years agosurface: Small cleanup
Matthias Clasen [Sun, 24 Mar 2019 19:26:55 +0000 (15:26 -0400)]
surface: Small cleanup

Every surface has an impl now, no need to check.

6 years agosurface: Simplify some code
Matthias Clasen [Sat, 23 Mar 2019 13:35:14 +0000 (09:35 -0400)]
surface: Simplify some code

Fold gdk_surface_process_updates_recurse into its
only caller. There is no recursion here anymore.

6 years agoRemove surface->children
Matthias Clasen [Sat, 23 Mar 2019 13:29:09 +0000 (09:29 -0400)]
Remove surface->children

This field is not used at all anymore.

6 years agogdk: Stop using surface->children
Matthias Clasen [Sat, 23 Mar 2019 13:28:50 +0000 (09:28 -0400)]
gdk: Stop using surface->children

It is always NULL.

6 years agowayland: Stop using surface->children
Matthias Clasen [Sat, 23 Mar 2019 13:28:11 +0000 (09:28 -0400)]
wayland: Stop using surface->children

It is always NULL.

6 years agoRemove surface->parent
Matthias Clasen [Sat, 23 Mar 2019 13:13:55 +0000 (09:13 -0400)]
Remove surface->parent

This field is no longer used.

6 years agogdk: Stop using surface->parent
Matthias Clasen [Sat, 23 Mar 2019 13:13:37 +0000 (09:13 -0400)]
gdk: Stop using surface->parent

It is always NULL.

6 years agobroadway: Stop using surface->parent
Matthias Clasen [Sun, 21 Apr 2019 17:08:24 +0000 (13:08 -0400)]
broadway: Stop using surface->parent

6 years agox11: Stop using surface->parent
Matthias Clasen [Sat, 23 Mar 2019 13:12:10 +0000 (09:12 -0400)]
x11: Stop using surface->parent

It is always NULL.

6 years agowayland: Stop using surface->parent
Matthias Clasen [Sat, 23 Mar 2019 13:11:46 +0000 (09:11 -0400)]
wayland: Stop using surface->parent

It is always NULL.

6 years agosurface: Remove code dealing with child surfaces
Matthias Clasen [Sat, 23 Mar 2019 12:43:07 +0000 (08:43 -0400)]
surface: Remove code dealing with child surfaces

We no longer have child surfaces, so this code
is never run.

6 years agosurface: minor cleanup
Matthias Clasen [Sat, 23 Mar 2019 12:36:25 +0000 (08:36 -0400)]
surface: minor cleanup

Make gdk_surface_new fully private, and reduce the use
of GdkSurfaceAttr.

6 years agoDrop child surfaces
Matthias Clasen [Fri, 22 Mar 2019 18:24:39 +0000 (14:24 -0400)]
Drop child surfaces

Drop gdk_surface_child_new and the child surface type,
since we no longer use them. Deprecate surface apis
that only make sense with child surfaces.

6 years agowidget: Stop using child surface apis
Matthias Clasen [Sat, 23 Mar 2019 06:01:52 +0000 (02:01 -0400)]
widget: Stop using child surface apis

All our surfaces are toplevels now, and thus all native.

6 years agoa11y: Stop supporting ATK_XY_SCREEN
Matthias Clasen [Sat, 23 Mar 2019 05:59:47 +0000 (01:59 -0400)]
a11y: Stop supporting ATK_XY_SCREEN

We were already not supporting ATK_XY_PARENT, and we can't
support global positions, so just always do ATK_XY_WINDOW.

6 years agoxim: Stop using child surface apis
Matthias Clasen [Sat, 23 Mar 2019 06:00:59 +0000 (02:00 -0400)]
xim: Stop using child surface apis

We no longer have child surfaces.
Drop code that only makes sense in
their presence.

6 years agowayland: Stop using child surface apis
Matthias Clasen [Sat, 23 Mar 2019 04:14:46 +0000 (00:14 -0400)]
wayland: Stop using child surface apis

We no longer have child surfaces.
Drop code that only makes sense in their
presence.

6 years agox11: Stop using child surface api
Matthias Clasen [Sat, 23 Mar 2019 04:14:00 +0000 (00:14 -0400)]
x11: Stop using child surface api

We no longer have child surfaces.
Drop code that only makes sense in
that case.

6 years agoentry completion: Use a popover
Matthias Clasen [Sat, 20 Apr 2019 04:32:29 +0000 (04:32 +0000)]
entry completion: Use a popover

This lets us remove a use of GTK_WINDOW_POPUP,
which should eventually be going away.

We need to disable treeview search, since it
creates a toplevel that will disrupt our grabbing
popup, causing it to be dismissed.

We don't need to grab ourselves, since the popover
code does it for us. We don't need to reposition our
window, since the popover takes care of that too.

6 years agomain: Use gtk_widget_get_native
Matthias Clasen [Thu, 2 May 2019 21:33:53 +0000 (17:33 -0400)]
main: Use gtk_widget_get_native

6 years agomain: Remove special-case hiding popopvers
Matthias Clasen [Mon, 22 Apr 2019 21:39:18 +0000 (21:39 +0000)]
main: Remove special-case hiding popopvers

This is now happening in GDK, so we don't have
to do this here anymore.

6 years agowidget: Remove some unneeded popover special-casing
Matthias Clasen [Fri, 26 Apr 2019 03:18:15 +0000 (03:18 +0000)]
widget: Remove some unneeded popover special-casing

6 years agoAdwaita: Give popover menus a background
Matthias Clasen [Sun, 24 Mar 2019 15:41:55 +0000 (11:41 -0400)]
Adwaita: Give popover menus a background

This makes the hover highlight on menu items visible.

6 years agomenubutton: Allocate the popover
Matthias Clasen [Fri, 26 Apr 2019 23:17:37 +0000 (23:17 +0000)]
menubutton: Allocate the popover

This is temporary, until we've figured out
the proper way of hooking this up

6 years agoAdapt to new popover lifecycle
Matthias Clasen [Fri, 22 Mar 2019 02:12:22 +0000 (22:12 -0400)]
Adapt to new popover lifecycle

We need to unparent popovers in dispose.

6 years agoReimplement GtkPopover
Matthias Clasen [Mon, 29 Apr 2019 03:25:37 +0000 (03:25 +0000)]
Reimplement GtkPopover

6 years agosurface: Start sketching a new surface type
Matthias Clasen [Wed, 20 Mar 2019 00:05:17 +0000 (20:05 -0400)]
surface: Start sketching a new surface type

Start by adding a constructor. We have to call it
gdk_surface_new_popup_full for now, since gdk_surface_new_popup
is taken. This may be reshuffled later.

6 years agomenushell: Keep outside clicks working
Matthias Clasen [Sun, 26 May 2019 17:16:40 +0000 (17:16 +0000)]
menushell: Keep outside clicks working

We need to unset event propagation limits here
to keep receiving outside clicks that cause us
to close the menu.

6 years agoIntroduce event controller propagation limits
Matthias Clasen [Mon, 29 Apr 2019 02:19:44 +0000 (02:19 +0000)]
Introduce event controller propagation limits

Limit event handlers by default to only handle
events targeting the same surface as their widget.

6 years agowidget: Don't snapshot foreign children
Matthias Clasen [Mon, 18 Mar 2019 11:51:47 +0000 (07:51 -0400)]
widget: Don't snapshot foreign children

When snapshotting, we walk down the widget tree.
We need to skip children that have a different
surface, since those will do their own snapshot.

6 years agoroot: Make gtk_root_get_display public
Matthias Clasen [Sun, 19 May 2019 20:35:59 +0000 (20:35 +0000)]
root: Make gtk_root_get_display public

This is following the precedent of making
GtkNative getters public.

6 years agoGtkRoot: Drop overlap with GtkNative
Matthias Clasen [Sun, 26 May 2019 17:39:11 +0000 (17:39 +0000)]
GtkRoot: Drop overlap with GtkNative

Drop the parts from the GtkRoot interface
that have been taken over by GtkNative.

6 years agowidget: Use GtkNative
Matthias Clasen [Mon, 29 Apr 2019 17:47:40 +0000 (13:47 -0400)]
widget: Use GtkNative

6 years agoReview and replace uses of get_toplevel
Matthias Clasen [Sun, 17 Mar 2019 23:41:26 +0000 (19:41 -0400)]
Review and replace uses of get_toplevel

Now that roots can have parent widgets, we need to
carefully examine all calls of gtk_widget_get_toplevel,
and replace them with gtk_widget_get_root if we want
the nearest root, and not the ultimate end of the parent
chain.

6 years agoUse GtkNative APIs instead of GtkRoot
Matthias Clasen [Sun, 26 May 2019 18:02:55 +0000 (18:02 +0000)]
Use GtkNative APIs instead of GtkRoot

6 years agoAdd gtk_widget_get_native
Matthias Clasen [Thu, 2 May 2019 21:32:54 +0000 (17:32 -0400)]
Add gtk_widget_get_native

This is a common enough operation to deserve api.

6 years agoroot: Require GtkNative
Matthias Clasen [Mon, 29 Apr 2019 05:42:39 +0000 (05:42 +0000)]
root: Require GtkNative

6 years agowindow: Implement GtkNative
Matthias Clasen [Sun, 26 May 2019 17:43:46 +0000 (17:43 +0000)]
window: Implement GtkNative

Adapt GtkWindow to implement both GtkRoot and GtkNative.